{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "def load_stopwords():\n",
    "        \"\"\"\n",
    "        :return: 加载好的停用词列表\n",
    "        \"\"\"\n",
    "        with open('../hit_stopwords.txt', 'r', encoding='UTF-8') as f:\n",
    "            lines = f.readlines()\n",
    "            stopwords = []\n",
    "            for line in lines:\n",
    "                stopwords.append(line.replace('\\n', ''))\n",
    "        return stopwords"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-06-25T07:31:36.360826300Z",
     "start_time": "2023-06-25T07:31:36.345828800Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Dumping model to file cache C:\\Users\\DYL\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 0.718 seconds.\n",
      "Prefix dict has been built successfully.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "375/375 [==============================] - 1s 3ms/step - loss: 0.3121 - accuracy: 0.9244\n",
      "Test loss: 0.3120572566986084\n",
      "Test accuracy: 0.924410343170166\n",
      "375/375 [==============================] - 1s 2ms/step\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.91      0.94      0.92      5922\n",
      "           1       0.94      0.91      0.92      6077\n",
      "\n",
      "    accuracy                           0.92     11999\n",
      "   macro avg       0.92      0.92      0.92     11999\n",
      "weighted avg       0.92      0.92      0.92     11999\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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RnZ29oMeEhGJiAGIiJoES0vLCpek/olEIgEACIJg+LqyNiqVqkavJ5fLKzxXp9PVqiYiahw4BoiImoWjR49W+N7Pzw8A0KFDB5w8eRK3bt0yPP7nn39CKpWiXbt2sLa2hpeXF37//fcGrZmIxMMeICJqEtRqNTIzM432mZmZwcnJCQCwfft2dO3aFY899hi+/vprxMbGYv369QCAF154AfPmzcP48ePxwQcf4Pr165g6dSrGjRsHFxcXAMAHH3yASZMmwdnZGQMHDkRhYSH+/PNPTJ06tWEPlIgaBAMQETUJv/zyC1xdXY32tW/fHufPnwegv0Nr69ateOONN9CyZUt8/fXX6NChAwDAwsICv/76K9566y1069YNFhYWGDFiBJYuXWp4rfHjx6OkpATLli3Du+++CycnJ4wcObLhDpCIGpREEARB7CKIiB6GRCLBrl27MGzYMLFLIaImgmOAiIiIyOQwABEREZHJ4RggImryeCWfiGqLPUBERERkchiAiIiIyOQwABEREZHJYQAiIiIik8MARERERCaHAYiIiIhMDgMQERERmRwGICIiIjI5DEBERERkcv4fwwTzRNK50FYAAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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ABIRERGnowAkIiIiTkcBSERERJyOApCISBnYbDa+/PJLq8sQkUqiACQiNd748eOx2WwlHiNGjLC6NBGppdysLkBEpCxGjBjBe++9V6zN09PTompEpLbTCJCI1Aqenp6EhIQUewQEBADm5am5c+cycuRI6tWrR0REBJ999lmx12/fvp1LLrmEevXq0bBhQyZMmMCpU6eK9Xn33Xfp2LEjnp6eNGnShHvvvbfYz1NSUrj66qvx9vamdevWfP3111X7pkWkyigAiUid8MQTT3DttdeydetWbrnlFm688UZ2794NQHZ2NiNGjCAgIIBNmzbx2Wef8cMPPxQLOHPnzuWee+5hwoQJbN++na+//ppWrVoV+x3Tp0/nhhtuYNu2bYwaNYqbb76Z1NTUan2fIlJJqny7VRERB40bN85wdXU1fHx8ij2efvppwzDMnbonTpxY7DV9+vQx7rrrLsMwDGPevHlGQECAcerUqaKff/vtt4aLi4uRlJRkGIZhNG3a1Jg6dep5awCMxx9/vOj5qVOnDJvNZnz33XeV9j5FpPpoDpCI1ApDhgxh7ty5xdoCAwOL/h4VFVXsZ1FRUcTGxgKwe/duunbtio+PT9HP+/fvj91uZ+/evdhsNo4ePcqll156wRq6dOlS9HcfHx98fX1JTk6u6FsSEQspAIlIreDj41PiktRfsdlsABiGUfT30vrUq1evTMdzd3cv8Vq73V6umkSkZtAcIBGpEzZs2FDiebt27QDo0KEDsbGxZGVlFf187dq1uLi40KZNG3x9fWnRogU//vhjtdYsItbRCJCI1Aq5ubkkJSUVa3NzcyMoKAiAzz77jJ49e3LxxRfz0UcfsXHjRubPnw/AzTffzFNPPcW4ceOYNm0ax48f57777mPs2LEEBwcDMG3aNCZOnEjjxo0ZOXIkmZmZrF27lvvuu69636iIVAsFIBGpFb7//nuaNGlSrK1t27bs2bMHMFdoffLJJ9x9992EhITw0Ucf0aFDBwC8vb1ZtmwZDzzwAL169cLb25trr72WV155pehY48aNIycnh5kzZ/LQQw8RFBTEddddV31vUESqlc0wDMPqIkREHGGz2ViyZAmjR4+2uhQRqSU0B0hEREScjgKQiIiIOB3NARKRWk9X8kWkvDQCJCIiIk5HAUhEREScjgKQiIiIOB0FIBEREXE6CkAiIiLidBSARERExOkoAImIiIjTUQASERERp6MAJCIiIk7n/wGKrmLxpZDC4QAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mKeyboardInterrupt\u001B[0m                         Traceback (most recent call last)",
      "Cell \u001B[1;32mIn[3], line 61\u001B[0m\n\u001B[0;32m     58\u001B[0m reduce_lr \u001B[38;5;241m=\u001B[39m ReduceLROnPlateau(monitor\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mval_loss\u001B[39m\u001B[38;5;124m'\u001B[39m, factor\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m0.2\u001B[39m, patience\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m2\u001B[39m, min_lr\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m0.0001\u001B[39m)\n\u001B[0;32m     60\u001B[0m \u001B[38;5;66;03m# 训练以及验证卷积神经网络模型的效果\u001B[39;00m\n\u001B[1;32m---> 61\u001B[0m history \u001B[38;5;241m=\u001B[39m \u001B[43mmodel\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfit\u001B[49m\u001B[43m(\u001B[49m\u001B[43mtrain_seq\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mtf\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mkeras\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mutils\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mto_categorical\u001B[49m\u001B[43m(\u001B[49m\u001B[43mtrain_labels\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mbatch_size\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;241;43m128\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mepochs\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;241;43m20\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mvalidation_data\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mtest_seq\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mtf\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mkeras\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mutils\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mto_categorical\u001B[49m\u001B[43m(\u001B[49m\u001B[43mtest_labels\u001B[49m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mcallbacks\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m[\u001B[49m\u001B[43mearly_stop\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mreduce_lr\u001B[49m\u001B[43m]\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mverbose\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;241;43m0\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m     63\u001B[0m \u001B[38;5;66;03m# 评估本实验建立的卷积神经网络模型的训练结果的各项参数\u001B[39;00m\n\u001B[0;32m     64\u001B[0m loss, accuracy \u001B[38;5;241m=\u001B[39m model\u001B[38;5;241m.\u001B[39mevaluate(test_seq, tf\u001B[38;5;241m.\u001B[39mkeras\u001B[38;5;241m.\u001B[39mutils\u001B[38;5;241m.\u001B[39mto_categorical(test_labels))\n",
      "File \u001B[1;32mD:\\Anaconda3\\envs\\MachineLearning\\lib\\site-packages\\keras\\utils\\traceback_utils.py:65\u001B[0m, in \u001B[0;36mfilter_traceback.<locals>.error_handler\u001B[1;34m(*args, **kwargs)\u001B[0m\n\u001B[0;32m     63\u001B[0m filtered_tb \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[0;32m     64\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m---> 65\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m fn(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n\u001B[0;32m     66\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mException\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[0;32m     67\u001B[0m     filtered_tb \u001B[38;5;241m=\u001B[39m _process_traceback_frames(e\u001B[38;5;241m.\u001B[39m__traceback__)\n",
      "File \u001B[1;32mD:\\Anaconda3\\envs\\MachineLearning\\lib\\site-packages\\keras\\engine\\training.py:1569\u001B[0m, in \u001B[0;36mModel.fit\u001B[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_batch_size, validation_freq, max_queue_size, workers, use_multiprocessing)\u001B[0m\n\u001B[0;32m   1567\u001B[0m \u001B[38;5;66;03m# No error, now safe to assign to logs.\u001B[39;00m\n\u001B[0;32m   1568\u001B[0m logs \u001B[38;5;241m=\u001B[39m tmp_logs\n\u001B[1;32m-> 1569\u001B[0m end_step \u001B[38;5;241m=\u001B[39m step \u001B[38;5;241m+\u001B[39m \u001B[43mdata_handler\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mstep_increment\u001B[49m\n\u001B[0;32m   1570\u001B[0m callbacks\u001B[38;5;241m.\u001B[39mon_train_batch_end(end_step, logs)\n\u001B[0;32m   1571\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mstop_training:\n",
      "File \u001B[1;32mD:\\Anaconda3\\envs\\MachineLearning\\lib\\site-packages\\keras\\engine\\data_adapter.py:1394\u001B[0m, in \u001B[0;36mDataHandler.step_increment\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m   1391\u001B[0m             \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_current_step \u001B[38;5;241m+\u001B[39m\u001B[38;5;241m=\u001B[39m steps_remaining\n\u001B[0;32m   1392\u001B[0m             \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_steps_per_execution\u001B[38;5;241m.\u001B[39massign(original_spe)\n\u001B[1;32m-> 1394\u001B[0m \u001B[38;5;129m@property\u001B[39m\n\u001B[0;32m   1395\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mstep_increment\u001B[39m(\u001B[38;5;28mself\u001B[39m):\n\u001B[0;32m   1396\u001B[0m     \u001B[38;5;124;03m\"\"\"The number to increment the step for `on_batch_end` methods.\"\"\"\u001B[39;00m\n\u001B[0;32m   1397\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_step_increment\n",
      "\u001B[1;31mKeyboardInterrupt\u001B[0m: "
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "from keras.utils import pad_sequences\n",
    "import pandas as pd\n",
    "import jieba\n",
    "import tensorflow as tf\n",
    "from sklearn.model_selection import KFold\n",
    "from keras.preprocessing.text import Tokenizer\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Embedding, Conv1D, GlobalMaxPooling1D, Dense, Dropout\n",
    "from keras.callbacks import EarlyStopping, ReduceLROnPlateau\n",
    "import numpy as np\n",
    "import re\n",
    "\n",
    "with tf.device('/gpu:0'):\n",
    "    # 读取我们本次实验的文本数据\n",
    "    df = pd.read_csv('../Emotional_text/weibo_sentiment.csv')\n",
    "\n",
    "    # 分词并去除停用词\n",
    "    stop_words = load_stopwords()\n",
    "    df['review'] = df['review'].apply(lambda x: re.sub(r'\\d+', '', x))\n",
    "    df['review'] = df['review'].apply(lambda x: re.sub(r'[^\\w\\s]', '', x))\n",
    "    df['review'] = df['review'].apply(lambda x: x.replace(\" \", \"\"))\n",
    "    df['review'] = df['review'].apply(lambda x: ' '.join(word for word in jieba.cut(x) if word not in stop_words))\n",
    "\n",
    "    # 使用Keras的Tokenizer来转化词语为词向量，这里我们选择出现频率前25000个词作为词袋\n",
    "    tokenizer = Tokenizer(num_words=25000, oov_token='<OOV>')\n",
    "    tokenizer.fit_on_texts(df['review'])\n",
    "    seq = tokenizer.texts_to_sequences(df['review'])\n",
    "\n",
    "    # 补齐每个样本序列，使其长度一样来方便后续的计算\n",
    "    max_len = 280\n",
    "    seq = pad_sequences(seq, maxlen=max_len, truncating='post')\n",
    "\n",
    "    # 划分数据集，这里我们使用十折交叉验证，循环十次训练\n",
    "    labels = df['label']\n",
    "    kfold = KFold(n_splits=10, shuffle=True, random_state=42)\n",
    "    losses = []\n",
    "    accs = []\n",
    "    for train_idx, test_idx in kfold.split(seq, labels):\n",
    "        # 划分训练集和测试集\n",
    "        train_seq, test_seq = seq[train_idx], seq[test_idx]\n",
    "        train_labels, test_labels = labels.iloc[train_idx], labels.iloc[test_idx]\n",
    "\n",
    "        # 建立一个神经网络模型，一层层添加神经元层\n",
    "        model = Sequential()\n",
    "        model.add(Embedding(25000, 150, input_length=max_len))\n",
    "        model.add(Conv1D(128, 5, activation='relu'))\n",
    "        model.add(GlobalMaxPooling1D())\n",
    "        model.add(Dense(128, activation='relu'))\n",
    "        model.add(Dropout(0.5))\n",
    "        model.add(Dense(2, activation='softmax'))\n",
    "\n",
    "        # 编译刚刚建立的卷积神经网络模型\n",
    "        model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])\n",
    "\n",
    "        # 设置 EarlyStopping 和 ReduceLROnPlateau 来避免过拟合\n",
    "        early_stop = EarlyStopping(monitor='val_loss', patience=3)\n",
    "        reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=2, min_lr=0.0001)\n",
    "\n",
    "        # 训练以及验证卷积神经网络模型的效果\n",
    "        history = model.fit(train_seq, tf.keras.utils.to_categorical(train_labels), batch_size=128, epochs=20, validation_data=(test_seq, tf.keras.utils.to_categorical(test_labels)), callbacks=[early_stop, reduce_lr], verbose=0)\n",
    "\n",
    "        # 评估本实验建立的卷积神经网络模型的训练结果的各项参数\n",
    "        loss, accuracy = model.evaluate(test_seq, tf.keras.utils.to_categorical(test_labels))\n",
    "        print('Test loss:', loss)\n",
    "        print('Test accuracy:', accuracy)\n",
    "        losses.append(loss)\n",
    "        accs.append(accuracy)\n",
    "        y_pred = np.argmax(model.predict(test_seq), axis=-1)\n",
    "        print(classification_report(test_labels, y_pred))\n",
    "\n",
    "        # 绘制训练集和测试集的损失和准确率变化曲线\n",
    "        import matplotlib.pyplot as plt\n",
    "        %matplotlib inline\n",
    "\n",
    "        plt.plot(history.history['accuracy'])\n",
    "        plt.plot(history.history['val_accuracy'])\n",
    "        plt.title('Model accuracy')\n",
    "        plt.ylabel('Accuracy')\n",
    "        plt.xlabel('Epoch')\n",
    "        plt.legend(['Train', 'Test'], loc='upper left')\n",
    "        plt.show()\n",
    "\n",
    "        plt.plot(history.history['loss'])\n",
    "        plt.plot(history.history['val_loss'])\n",
    "        plt.title('Model loss')\n",
    "        plt.ylabel('Loss')\n",
    "        plt.xlabel('Epoch')\n",
    "        plt.legend(['Train', 'Test'], loc='upper left')\n",
    "        plt.show()\n",
    "\n",
    "    print('Mean loss:', np.mean(losses))\n",
    "    print('Mean accuracy:', np.mean(accs))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-06-25T07:35:09.837698Z",
     "start_time": "2023-06-25T07:31:38.993437700Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Loading model from cache C:\\Users\\DYL\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 0.735 seconds.\n",
      "Prefix dict has been built successfully.\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'tokenizer' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mNameError\u001B[0m                                 Traceback (most recent call last)",
      "Cell \u001B[1;32mIn[5], line 16\u001B[0m\n\u001B[0;32m     13\u001B[0m new_text \u001B[38;5;241m=\u001B[39m [\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m \u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;241m.\u001B[39mjoin(word \u001B[38;5;28;01mfor\u001B[39;00m word \u001B[38;5;129;01min\u001B[39;00m jieba\u001B[38;5;241m.\u001B[39mcut(new_text) \u001B[38;5;28;01mif\u001B[39;00m word \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;129;01min\u001B[39;00m stop_words)]\n\u001B[0;32m     15\u001B[0m \u001B[38;5;66;03m# 词向量化\u001B[39;00m\n\u001B[1;32m---> 16\u001B[0m seq \u001B[38;5;241m=\u001B[39m \u001B[43mtokenizer\u001B[49m\u001B[38;5;241m.\u001B[39mtexts_to_sequences(new_text)\n\u001B[0;32m     17\u001B[0m padded \u001B[38;5;241m=\u001B[39m pad_sequences(seq, maxlen\u001B[38;5;241m=\u001B[39mmax_len, truncating\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mpost\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[0;32m     19\u001B[0m \u001B[38;5;66;03m# 预测\u001B[39;00m\n",
      "\u001B[1;31mNameError\u001B[0m: name 'tokenizer' is not defined"
     ]
    }
   ],
   "source": [
    "import re\n",
    "\n",
    "# 准备数据\n",
    "new_text = \"我真的好伤心，要哭成泪人了，有没有小伙伴来同情一下我啊，我好难受\"\n",
    "\n",
    "new_text = re.sub(r'\\d+', '', new_text)\n",
    "\n",
    "new_text = re.sub(r'[^\\w\\s]', '', new_text)\n",
    "\n",
    "new_text = new_text.replace(\" \", \"\")\n",
    "\n",
    "# 分词并去除停用词\n",
    "new_text = [' '.join(word for word in jieba.cut(new_text) if word not in stop_words)]\n",
    "\n",
    "# 词向量化\n",
    "seq = tokenizer.texts_to_sequences(new_text)\n",
    "padded = pad_sequences(seq, maxlen=max_len, truncating='post')\n",
    "\n",
    "# 预测\n",
    "predictions = model.predict(padded)\n",
    "\n",
    "# 解析结果\n",
    "predicted_labels = np.argmax(predictions, axis=1)\n",
    "\n",
    "print(predicted_labels)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2023-05-13T10:56:02.453148200Z",
     "start_time": "2023-05-13T10:56:01.694428800Z"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
